A technique “OpenFlow” is described in Non-Patent Literature 1 (Nick McKeown et al., “OpenFlow: Enabling Innovation in Campus Networks”, ACM SIGCOMM Computer Communication Review, Vol. 38, No. 2, 2008). According to the OpenFlow, route control, fault recovery, load balancing and optimization are performed with respect to each flow. An open flow switch (OFS) serving as a forwarding node and an open flow controller (OFC) controlling the open flow switch are used in the OpenFlow.
Typical packet processing in the OpenFlow will be described with reference to FIG. 1. The open flow switch has a flow table and performs packet processing in accordance with the flow table. Each flow entry in the flow table has fields such as a match condition (Key), an action (Action), statistical information (Stat) and a time-out value (Timeout). The match condition, which is expressed by a combination of fields of a packet header, is used for determining whether or not a received packet matches the flow entry. The action indicates a content of packet processing that is performed with respect to a packet matching the match condition (e.g. the packet processing is to output the received packet to a specified port).
When receiving a packet belonging to a flow, the open flow switch refers to the flow table to search for a flow entry whose match condition matches the received packet. A flow entry that matches the received packet is hereinafter referred to as a “hit entry”. If the hit entry is not yet set in the flow table (i.e. in a case of miss), the open flow switch transmits the received packet as an entry setup request (first packet) to the open flow controller.
The open flow controller receives the entry setup request (first packet) from the open flow switch. In response to the reception of the first packet, the open flow controller generates a new flow entry for treating the first packet and sets the new flow entry in the flow table of the open flow switch. More specifically, the open flow controller instructs the open flow switch to add the new flow entry to the flow table, and the open flow switch adds the new flow entry to the flow table in accordance with the instruction.
Subsequently, the open flow controller sends the first packet back to the open flow switch. The open flow switch receives the first packet as a received packet again. At this time, the hit entry matching the first packet exists in the flow table (i.e. in a case of hit). In this case, the open flow switch performs the processing specified by the action of the hit entry with respect to the received packet. After that, packets belonging to the same flow as the first packet are treated in accordance with the same hit entry, without through the open flow controller.
If a certain time has passed since a flow entry has been newly set up or if a certain time has passed since the last time a flow entry has become a hit entry, the flow entry is deleted from the flow table. What specifies the above-mentioned certain time is the time-out value (Timeout) in each flow entry. That is, the open flow switch monitors time-out in each flow entry and, if time-out occurs in a flow entry, deletes (removes) the flow entry from the flow table.